<?php
/** 获得当前时间，格式为2015-02-02 14:01:05
 * @param string $sp1 第一个分隔符，分割年-月-日，默认-
 * @param string $sp2 第二个分隔符，分割日期与时间，默认为空格
 * @param string $sp3 第三个分隔符，时间间的分割，默认：
 * @return string 返回当前的时间
 */
function now_str($sp1 = "-", $sp2 = " ", $sp3 = ":")
{
    return date("Y" . $sp1 . "m" . $sp1 . "d" . $sp2 . "H" . $sp3 . "i" . $sp3 . "s");
}

/** 获得当前日期，格式为2015-02-02
 * @param string $sp1 第一个分隔符，分割年-月-日，默认-
 * @return string 返回当前的时间
 */
function now_date_str($sp1 = "-")
{
    return date("Y" . $sp1 . "m" . $sp1 . "d");
}

/** 获得当前日期，格式为2015-02-02
 * @param string $sp3 时间分割符
 * @return string 返回当前的时间
 */
function now_time_str($sp3 = ":")
{
    return date("H" . $sp3 . "i" . $sp3 . "s");
}

/**
 * 获取表示sqlite当前时间的字符串
 * @param string $xg 修改，可以为+int second  -int minute
 * @return string
 */
function now_sqlite($xg = '')
{
    if ($xg) {
        return "DATETIME('now','localtime'," . $xg . ")";
    } else {
        return "DATETIME('now','localtime')";
    }
}

/**
 * 当前秒级时间戳
 * @return int
 */
function now_stamp()
{
    return time();
}

/**
 * 生成moment实例
 * @param string $dateTime 默认为当前时间，可传入字符串的时间
 * @param string|null $timezone 默认CST（北京时间）时区，
 * @return Moment\Moment
 * @throws Moment\MomentException
 */
function newMoment($dateTime = 'now', $timezone = null)
{
    if (!$timezone) $timezone = "CST";
    return new Moment\Moment($dateTime, $timezone, false);
}

/**
 * 生成格式化的日期字符串
 * @param string|int $time
 * @param string $format
 * @return false|string
 */
function time_format($time = '', $format = 'Y-m-d H:i:s')
{
    $timeInt = false;
    if (empty($time)) {
        $timeInt = time();
    } else if (is_int($time)>0) {
        $timeInt =$time;
    } else if (is_string($time)) {
        $timeInt = strtotime($time);
    }

    if ($timeInt !== false) {
        return date($format, $timeInt);
    }

    return '';
}

/**
 * 当前时间戳，秒，精确到毫秒如 1.036  1秒36毫秒
 * 同 microtime(true)
 * @return float
 */
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}